#include "widget.h"
#include "ui_widget.h"
#include <QPushButton>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 方式一
//    QPushButton *button = new QPushButton(this);
//    button->setText("按下");
//    button->move(200, 200);

    // 关联 信号 和 槽，实现点击 按钮 关闭 窗口
    // connect(button, &QPushButton::clicked, this, &QWidget::close);

    // connect(button, &QPushButton::clicked, this, &Widget::handleClicked);

    // 方式二
    // 通过 ui -> pushButton 获取到界面拖上去的这个按钮

    connect(this, &Widget::mySignal, this, &Widget::handleMySinal);

    // 发送出自定义信号
    // emit mySignal();
}

//void Widget::handleMySinal()
//{
//    this->setWindowTitle("处理自定义信号");
//}

//void Widget::handleClicked()
//{
//    this->setWindowTitle("按下按钮，窗口标题修改");
//}


void Widget::handleMySinal(const QString& text)
{
    this->setWindowTitle(text);
}


Widget::~Widget()
{
    delete ui;
}


void Widget::on_pushButton_clicked()
{
    // this->setWindowTitle("按下按钮，窗口标题修改");

    // 发送信号的操作也可以在任意合适的代码中，不一定非得在构造函数中
    // 发送出自定义信号
    // 此时就是点击按钮的时候，发送自定义信号了
    //emit mySignal(); // 其实不写 emit 也能发出去
    emit mySignal("把标题1设置为标题");
}

void Widget::on_pushButton_2_clicked()
{
    emit mySignal("把标题2设置为标题");
}
